/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

媒体处理相关接口
多媒体处理服务API，包括截图、转码、媒体处理消息通知等操作。本文档详细说明了媒体处理API及用法，适合开发人员阅读。

OpenAPI spec version: v1
Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/


#ifndef MpsApiModel_h
#define MpsApiModel_h
#import <JDCloudOCSDKCore/JDCloudOCSDKCore.h>
#import <JDCloudOCSDKMps/MpsModel.h>


@interface MpsGetStyleDelimiterResult : NSObject
/// 图片样式分隔符配置（JSON数组）；支持的分隔符包含：[&quot;-&quot;, &quot;_&quot;, &quot;/&quot;, &quot;!&quot;]
 @property (strong,nonatomic,nonnull)  NSArray<NSString*>*  delimiters;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithDelimiters:(NSArray<NSString*>*) delimiters;
@end

@interface MpsDeleteStyleDelimiterRequest:JDCloudRequest

/// Bucket名称
@property (strong,nonatomic,nonnull)  NSString*  bucketName;
-(id) initWithRegion:(NSString *)regionId
bucketName:(NSString*)bucketName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
bucketName:(NSString*)bucketName;

@end

@interface MpsGetStyleDelimiterRequest:JDCloudRequest

/// Bucket名称
@property (strong,nonatomic,nonnull)  NSString*  bucketName;
-(id) initWithRegion:(NSString *)regionId
bucketName:(NSString*)bucketName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
bucketName:(NSString*)bucketName;

@end

@interface MpsSetStyleDelimiterRequest:JDCloudRequest

/// 图片样式分隔符配置（JSON数组）；支持的分隔符包含：[&quot;-&quot;, &quot;_&quot;, &quot;/&quot;, &quot;!&quot;]
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  delimiters;
/// Bucket名称
@property (strong,nonatomic,nonnull)  NSString*  bucketName;
-(id) initWithRegion:(NSString *)regionId
delimiters:(NSArray<NSString*>*)delimiters
bucketName:(NSString*)bucketName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
delimiters:(NSArray<NSString*>*)delimiters
bucketName:(NSString*)bucketName;

@end

@interface MpsListThumbnailTaskRequest:JDCloudRequest

/// task 状态 (PENDING, RUNNING, SUCCESS, FAILED)
@property (strong,nonatomic,nonnull)  NSString*  status;
/// 开始时间 时间格式(GMT): yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSS&#39;Z&#39;
@property (strong,nonatomic,nonnull)  NSString*  begin;
/// 结束时间 时间格式(GMT): yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSS&#39;Z&#39;
@property (strong,nonatomic,nonnull)  NSString*  end;
/// 查询标记
@property (strong,nonatomic,nonnull)  NSString*  marker;
/// 查询记录数 [1, 1000]
@property (strong,nonatomic,nonnull)  NSNumber*  limit;
-(id) initWithRegion:(NSString *)regionId
status:(NSString*)status
begin:(NSString*)begin
end:(NSString*)end
marker:(NSString*)marker
limit:(NSNumber*)limit;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
status:(NSString*)status
begin:(NSString*)begin
end:(NSString*)end
marker:(NSString*)marker
limit:(NSNumber*)limit;

@end

@interface MpsGetNotificationResult : NSObject
/// 是否启用通知
 @property (strong,nonatomic,nonnull)  NSNumber*  enabled;
/// 通知endpoint, 当前支持http://和https://
 @property (strong,nonatomic,nonnull)  NSString*  endpoint;
/// 触发通知的事件集合 (mpsTranscodeComplete, mpsThumbnailComplete)
 @property (strong,nonatomic,nonnull)  NSArray<NSString*>*  events;
/// 重试策略, BACKOFF_RETRY: 退避重试策略, 重试 3 次, 每次重试的间隔时间是 10秒 到 20秒 之间的随机值; EXPONENTIAL_DECAY_RETRY: 指数衰减重试, 重试 176 次, 每次重试的间隔时间指数递增至 512秒, 总计重试时间为1天; 每次重试的具体间隔为: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 512 ... 512 秒(共167个512)
 @property (strong,nonatomic,nonnull)  NSString*  notifyStrategy;
/// 描述了向 Endpoint 推送的消息格式, JSON: 包含消息正文和消息属性, SIMPLIFIED: 消息体即用户发布的消息, 不包含任何属性信息
 @property (strong,nonatomic,nonnull)  NSString*  notifyContentFormat;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithEnabled:(NSNumber*) enabled

    endpoint:(NSString*)endpoint

    events:(NSArray<NSString*>*)events

    notifyStrategy:(NSString*)notifyStrategy

    notifyContentFormat:(NSString*)notifyContentFormat;
@end

@interface MpsGetThumbnailTaskRequest:JDCloudRequest

/// task id
@property (strong,nonatomic,nonnull)  NSString*  taskId;
-(id) initWithRegion:(NSString *)regionId
taskId:(NSString*)taskId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
taskId:(NSString*)taskId;

@end

@interface MpsSetNotificationRequest:JDCloudRequest

/// 是否启用通知
@property (strong,nonatomic,nonnull)  NSNumber*  enabled;
/// 通知endpoint, 当前支持http://和https://
@property (strong,nonatomic,nonnull)  NSString*  endpoint;
/// 触发通知的事件集合 (mpsTranscodeComplete, mpsThumbnailComplete)
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  events;
/// 重试策略, BACKOFF_RETRY: 退避重试策略, 重试 3 次, 每次重试的间隔时间是 10秒 到 20秒 之间的随机值; EXPONENTIAL_DECAY_RETRY: 指数衰减重试, 重试 176 次, 每次重试的间隔时间指数递增至 512秒, 总计重试时间为1天; 每次重试的具体间隔为: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 512 ... 512 秒(共167个512)
@property (strong,nonatomic,nonnull)  NSString*  notifyStrategy;
/// 描述了向 Endpoint 推送的消息格式, JSON: 包含消息正文和消息属性, SIMPLIFIED: 消息体即用户发布的消息, 不包含任何属性信息
@property (strong,nonatomic,nonnull)  NSString*  notifyContentFormat;
-(id) initWithRegion:(NSString *)regionId
enabled:(NSNumber*)enabled
endpoint:(NSString*)endpoint
events:(NSArray<NSString*>*)events
notifyStrategy:(NSString*)notifyStrategy
notifyContentFormat:(NSString*)notifyContentFormat;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
enabled:(NSNumber*)enabled
endpoint:(NSString*)endpoint
events:(NSArray<NSString*>*)events
notifyStrategy:(NSString*)notifyStrategy
notifyContentFormat:(NSString*)notifyContentFormat;

@end

@interface MpsCreateThumbnailTaskResult : NSObject
/// TaskID
 @property (strong,nonatomic,nonnull)  NSString*  taskID;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithTaskID:(NSString*) taskID;
@end

@interface MpsGetStyleDelimiterResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property MpsGetStyleDelimiterResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(MpsGetStyleDelimiterResult*) result;
@end

@interface MpsSetStyleDelimiterResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface MpsSetStyleDelimiterResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property MpsSetStyleDelimiterResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(MpsSetStyleDelimiterResult*) result;
@end

@interface MpsDeleteStyleDelimiterResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface MpsDeleteStyleDelimiterResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property MpsDeleteStyleDelimiterResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(MpsDeleteStyleDelimiterResult*) result;
@end

@interface MpsListThumbnailTaskResult : NSObject
/// 状态 (SUCCESS, ERROR, PENDDING, RUNNING)
 @property (strong,nonatomic,nonnull)  NSString*  status;
/// 查询开始时间 时间格式(GMT): yyyy-MM-dd’T’HH:mm:ss.SSS’Z’
 @property (strong,nonatomic,nonnull)  NSString*  begin;
/// 查询结束时间 时间格式(GMT): yyyy-MM-dd’T’HH:mm:ss.SSS’Z’
 @property (strong,nonatomic,nonnull)  NSString*  end;
/// 本次请求的marker, 标记查询的起始位置, 此处为taskID
 @property (strong,nonatomic,nonnull)  NSString*  marker;
/// 本次请求返回的任务列表的最大元素个数, 有效值: [1-1000]，默认值: 1000
 @property (strong,nonatomic,nonnull)  NSNumber*  limit;
/// 获取下一页所需要传递的marker值(此处为taskID), 仅当isTruncated为true时(数据未全部返回)出现 (readonly)
 @property (strong,nonatomic,nonnull)  NSString*  nextMarker;
/// 指明返回数据是否被截断. true表示本页后面还有数据, 即数据未全部返回; false表示已是最后一页, 即数据已全部返回 (readonly)
 @property (strong,nonatomic,nonnull)  NSNumber*  truncated;
/// 返回的task列表 (readonly)
 @property (strong,nonatomic,nonnull)  NSArray<ThumbnailTask*>*  taskList;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithStatus:(NSString*) status

    begin:(NSString*)begin

    end:(NSString*)end

    marker:(NSString*)marker

    limit:(NSNumber*)limit

    nextMarker:(NSString*)nextMarker

    truncated:(NSNumber*)truncated

    taskList:(NSArray<ThumbnailTask*>*)taskList;
@end

@interface MpsCreateThumbnailTaskResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property MpsCreateThumbnailTaskResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(MpsCreateThumbnailTaskResult*) result;
@end

@interface MpsGetNotificationRequest:JDCloudRequest

@end

@interface MpsListThumbnailTaskResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property MpsListThumbnailTaskResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(MpsListThumbnailTaskResult*) result;
@end

@interface MpsGetThumbnailTaskResult : NSObject
/// 任务ID (readonly)
 @property (strong,nonatomic,nonnull)  NSString*  taskID;
/// 状态 (SUCCESS, ERROR, PENDDING, RUNNING) (readonly)
 @property (strong,nonatomic,nonnull)  NSString*  status;
/// 错误码 (readonly)
 @property (strong,nonatomic,nonnull)  NSNumber*  errorCode;
/// 任务创建时间 时间格式(GMT): yyyy-MM-dd’T’HH:mm:ss.SSS’Z’  (readonly)
 @property (strong,nonatomic,nonnull)  NSString*  createdTime;
/// 任务创建时间 时间格式(GMT): yyyy-MM-dd’T’HH:mm:ss.SSS’Z’  (readonly)
 @property (strong,nonatomic,nonnull)  NSString*  lastUpdatedTime;
/// Source
 @property (strong,nonatomic,nonnull)  ThumbnailTaskSource*  source;
/// Target
 @property (strong,nonatomic,nonnull)  ThumbnailTaskTarget*  target;
/// Rule
 @property (strong,nonatomic,nonnull)  ThumbnailTaskRule*  rule;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithTaskID:(NSString*) taskID

    status:(NSString*)status

    errorCode:(NSNumber*)errorCode

    createdTime:(NSString*)createdTime

    lastUpdatedTime:(NSString*)lastUpdatedTime

    source:(ThumbnailTaskSource*)source

    target:(ThumbnailTaskTarget*)target

    rule:(ThumbnailTaskRule*)rule;
@end

@interface MpsGetNotificationResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property MpsGetNotificationResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(MpsGetNotificationResult*) result;
@end

@interface MpsGetThumbnailTaskResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property MpsGetThumbnailTaskResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(MpsGetThumbnailTaskResult*) result;
@end

@interface MpsSetNotificationResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface MpsSetNotificationResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property MpsSetNotificationResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(MpsSetNotificationResult*) result;
@end

@interface MpsCreateThumbnailTaskRequest:JDCloudRequest

/// 任务ID (readonly)
@property (strong,nonatomic,nonnull)  NSString*  taskID;
/// 状态 (SUCCESS, ERROR, PENDDING, RUNNING) (readonly)
@property (strong,nonatomic,nonnull)  NSString*  status;
/// 错误码 (readonly)
@property (strong,nonatomic,nonnull)  NSNumber*  errorCode;
/// 任务创建时间 时间格式(GMT): yyyy-MM-dd’T’HH:mm:ss.SSS’Z’  (readonly)
@property (strong,nonatomic,nonnull)  NSString*  createdTime;
/// 任务创建时间 时间格式(GMT): yyyy-MM-dd’T’HH:mm:ss.SSS’Z’  (readonly)
@property (strong,nonatomic,nonnull)  NSString*  lastUpdatedTime;
/// Source
@property (strong,nonatomic,nonnull)  ThumbnailTaskSource*  source;
/// Target
@property (strong,nonatomic,nonnull)  ThumbnailTaskTarget*  target;
/// Rule
@property (strong,nonatomic,nonnull)  ThumbnailTaskRule*  rule;
-(id) initWithRegion:(NSString *)regionId
taskID:(NSString*)taskID
status:(NSString*)status
errorCode:(NSNumber*)errorCode
createdTime:(NSString*)createdTime
lastUpdatedTime:(NSString*)lastUpdatedTime
source:(ThumbnailTaskSource*)source
target:(ThumbnailTaskTarget*)target
rule:(ThumbnailTaskRule*)rule;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
taskID:(NSString*)taskID
status:(NSString*)status
errorCode:(NSNumber*)errorCode
createdTime:(NSString*)createdTime
lastUpdatedTime:(NSString*)lastUpdatedTime
source:(ThumbnailTaskSource*)source
target:(ThumbnailTaskTarget*)target
rule:(ThumbnailTaskRule*)rule;

@end

#endif /* MpsApiModel_h */
